# -*- coding: utf-8 -*-
"""
@Time ： 2022/7/23 20:37
@Auth ： Mr. William 1052949192
@Company ：特斯汀学院 @testingedu.com.cn
@Function ：装饰器应用
"""
import time


def my_time(func):
    def wrapper(*args, **kwargs):
        # 被装饰函数执行前
        t1 = time.time()
        # 被装饰器函数执行
        res = func(*args, **kwargs)
        # 被装饰函数执行后
        t2 = time.time()
        print(func.__name__, '执行耗时：', round(t2 - t1, 3))
        return res

    return wrapper


def my_time_new(t='ms'):
    """
    三层装饰器，最外层接收装饰器本身的参数
    :param t: 时间单位
    """
    def my_time1(func):
        def wrapper(*args, **kwargs):
            # 被装饰函数执行前
            t1 = time.time()
            # 被装饰器函数执行
            res = func(*args, **kwargs)
            # 被装饰函数执行后
            t2 = time.time()
            if t == 'ms':
                print(func.__name__, '执行耗时：', round(t2 - t1, 3), t)
            elif t == 's':
                print(func.__name__, '执行耗时：', int(t2 - t1), t)
            else:
                print(func.__name__, '执行耗时：', round((t2 - t1) * 1000, 3), t)
            return res

        return wrapper

    # return执行第二层函数，不要带括号
    return my_time1
